Gaming machines, such as slot machines, video poker machines, and the like, have been a cornerstone of the gaming industry for many years. A particular game may be required to have game input data generated in multiple ways or may need to have recent game play activity stored for more than one reason. For example, a so-called Class 3 game may require random numbers from a local random number generator while a Class 2 game may need to pre-fetch random numbers from a remote server. In another example, power recovery, game history for payout validation, pay table testing, etc., may all require different data about a game to be stored and retrieved based on the gaming machine's operating mode.
In traditional gaming machines, the programming to accommodate these various requirements are built into the base game code or may require that base game code targeted for each of these requirements be built, delivered, and maintained separately. This adds complexity to the development of the game and increases the burden of validation and acceptance testing.